package com.tmz.web;

import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;



import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.tmz.dao.UserDAO;
import com.tmz.dao.UserDAOImpl;
import com.tmz.domain.Jornada;
import com.tmz.domain.User;
import com.tmz.utils.QuinielaException;

public class LoginAction extends ActionSupport implements SessionAware, ModelDriven<User>{

    /**
	 * 
	 */
	//private static final long serialVersionUID = -3943866043332951686L;
	private Map sessionUser;
    private String mensajeError;
    private String usr;
    private String pas;
    private User user;
    UserDAO userDAO = new UserDAOImpl();
	
    
	public String check() {
    
		if (getUsr() != null && getPas() != null){	//Verificamos que los datos no sean nulos
		User usuario = null; 
		// Aqui haremos como que buscamos a nuestro usuario en la base de datos.
		// Si el login y password coinciden normalmente devolveriamos una instancia
		try
		{
			usuario = userDAO.checkUser(getUsr(), getPas());	
			//Fin de busqueda
	
			if(usuario != null){	//Si el usuario se encuentra se agrega a la sesion
				sessionUser.put("usuario",usuario);
			}else{					//Si no se encuentra se devuelve un error
				addActionError("No existe esta cuenta");
				setMensajeError("No existe esta cuenta");
				return ERROR;
			}
		}
		catch (QuinielaException qui)
		{
			addActionError(qui.getMessage());
			setMensajeError(qui.getMessage());
			return ERROR;
		} 
		catch (Exception e)
		{
			addActionError("No existe esta cuenta");
			setMensajeError("No existe esta cuenta");
			return ERROR;
		}

		
		} else {
		    addActionError("Inserte datos correctos");
			setMensajeError("Inserte datos correctos");
			return ERROR;
		}
		return SUCCESS;
	}
	

	public String getUsr() {
		return usr;
	}
	
	public void setUsr(String usr) {
		this.usr = usr;
	}
	
	public String getPas() {
		return pas;
	}
	
	public void setPas(String pas) {
		this.pas = pas;
	}
	
	public void setMensajeError(String mensajeError) {
	    this.mensajeError = mensajeError;
	}
	  
    public Map getSessionUser() {
        return sessionUser;
    }

    public void setSession(Map sessionUser) {
        this.sessionUser = sessionUser;
    }


	public User getModel() {
		return this.user;
	}
}
